/**
 * @Description  : 
 * @FilePath     : /ns_library/drivers/gpio/gpio_gd32.h
 * @Author       : xiongjinqi
 * @Date         : 2024-12-02 21:54:07
 * @Version      : 0.0.1
 * @LastEditors  : xiongjinqi
 * @LastEditTime : 2024-12-05 13:22:06
 * @Copyright    : Copyright (c) 2024 by XJQ, All Rights Reserved. 
**/
#ifndef __GPIO_GD32_H_
#define __GPIO_GD32_H_

#include "types.h"
#include "gpio/gpio_core.h"

#ifdef GD32F1
#include "gd32f1xx.h"
#endif

#ifdef GD32F2
#include "gd32f2xx.h"
#endif

#ifdef GD32F3
#include "gd32f3xx.h"
#endif

#ifdef GD32F4
#include "gd32f4xx.h"
#endif


#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */


#define DRV_GD32_PORT_ARRT  \
    {                       \
        GPIOA,              \
        GPIOB,              \
        GPIOC,              \
        GPIOD,              \
        GPIOE,              \
        GPIOF,              \
        GPIOG,              \
#ifdef (GD32F4)
        GPIOH,              \
        GPIOI,              \
#ifdef (GD32H7)
        GPIOJ,              \
        GPIOK,              \
#endif /* GD32H7 */
#endif /* GD32F4 */
    }

#define DRV_GD32_PIN_ARRT   \
    {                       \
        GPIO_PIN_0  ,       \
        GPIO_PIN_1  ,       \
        GPIO_PIN_2  ,       \
        GPIO_PIN_3  ,       \
        GPIO_PIN_4  ,       \
        GPIO_PIN_5  ,       \
        GPIO_PIN_6  ,       \
        GPIO_PIN_7  ,       \
        GPIO_PIN_8  ,       \
        GPIO_PIN_9  ,       \
        GPIO_PIN_10 ,       \
        GPIO_PIN_11 ,       \
        GPIO_PIN_12 ,       \
        GPIO_PIN_13 ,       \
        GPIO_PIN_14 ,       \
        GPIO_PIN_15 ,       \
    }

#define DRV_GD32_PORT_CLK_ARRT\
    {                       \
        RCU_GPIOA,          \
        RCU_GPIOB,          \
        RCU_GPIOC,          \
        RCU_GPIOD,          \
        RCU_GPIOE,          \
        RCU_GPIOF,          \
        RCU_GPIOG,          \
#ifdef (GD32F4)
        RCU_GPIOH,          \
        RCU_GPIOI,          \
#ifdef (GD32H7)
        RCU_GPIOJ,          \
        RCU_GPIOK,          \
#endif /* GD32H7 */
#endif /* GD32F4 */
    }

#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __GPIO_GD32_H_ */
